package com.xiaoxin.nmzp.service.impl;

import java.util.List;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xiaoxin.nmzp.mapper.NmzpResumeMapper;
import com.xiaoxin.nmzp.domain.NmzpResume;
import com.xiaoxin.nmzp.service.INmzpResumeService;

/**
 * 简历管理Service业务层处理
 *
 * @author xiaoxin
 * @date 2024-10-20
 */
@Service
public class NmzpResumeServiceImpl implements INmzpResumeService {
    @Autowired
    private NmzpResumeMapper nmzpResumeMapper;
    @Autowired
    private ISysUserService syetemUserService;

    /**
     * 查询简历管理
     *
     * @param resumeId 简历管理主键
     * @return 简历管理
     */
    @Override
    public NmzpResume selectNmzpResumeByResumeId(Long resumeId) {
        return nmzpResumeMapper.selectById(resumeId);
        //return nmzpResumeMapper.selectNmzpResumeByResumeId(resumeId);
    }

    /**
     * 查询简历管理列表
     *
     * @param nmzpResume 简历管理
     * @return 简历管理
     */
    @Override
    public List<NmzpResume> selectNmzpResumeList(NmzpResume nmzpResume) {

        Long userId = SecurityUtils.getUserId();
        SysUser sysUser = syetemUserService.selectUserById(userId);
        List<SysRole> roles = sysUser.getRoles();
        boolean flag = false;
        for (SysRole role : roles) {
            if (role.getRoleKey().equals("admin")) {
                flag = true;
                break;
            }
        }
        QueryWrapper<NmzpResume> queryWrapper = new QueryWrapper<>();
        if (!flag) {//普通用户
            queryWrapper.eq("user_id", userId);
        }
        List<NmzpResume> nmzpResumes = nmzpResumeMapper.selectList(queryWrapper);
        return nmzpResumes;
        // return nmzpResumeMapper.selectNmzpResumeList(nmzpResume);
    }

    /**
     * 新增简历管理
     *
     * @param nmzpResume 简历管理
     * @return 结果
     */
    @Override
    public int insertNmzpResume(NmzpResume nmzpResume) {
        nmzpResume.setUserId(SecurityUtils.getUserId());
        return nmzpResumeMapper.insert(nmzpResume);
    }

    /**
     * 修改简历管理
     *
     * @param nmzpResume 简历管理
     * @return 结果
     */
    @Override
    public int updateNmzpResume(NmzpResume nmzpResume) {
        if (nmzpResume.getIsWorkExperience() == 0L) {
            nmzpResume.setWorkExperience(null);
        }
        nmzpResume.setAttachment(null);
        return nmzpResumeMapper.updateById(nmzpResume);
        //return nmzpResumeMapper.updateNmzpResume(nmzpResume);
    }

    /**
     * 批量删除简历管理
     *
     * @param resumeIds 需要删除的简历管理主键
     * @return 结果
     */
    @Override
    public int deleteNmzpResumeByResumeIds(Long[] resumeIds) {
        return nmzpResumeMapper.deleteNmzpResumeByResumeIds(resumeIds);
    }

    /**
     * 删除简历管理信息
     *
     * @param resumeId 简历管理主键
     * @return 结果
     */
    @Override
    public int deleteNmzpResumeByResumeId(Long resumeId) {
        return nmzpResumeMapper.deleteNmzpResumeByResumeId(resumeId);
    }

    /**
     * 修改简历附件地址
     * @param attachment
     * @return
     */
    @Override
    public int updateAttachment(String attachment,String resumeId) {
        Long userId = SecurityUtils.getUserId();
        UpdateWrapper<NmzpResume> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("resume_id", resumeId);
        updateWrapper.set("attachment", attachment);
        return nmzpResumeMapper.update(null, updateWrapper);
        //return 0;
    }
}
